#!/usr/bin/env python
# -*- coding: utf-8 -*-

citys = ["shenzhou", "tangshan", "beijing", "shanghai", "guangzhou"]
cityCodes = ["0512", "0315", "011", "012", "020"]
print "{city} : {cityCode}".format(city = citys[0], cityCode = cityCodes[0])

'''创建新的dict,三种方法'''
personM = {"name" : "Mark", "sex": "Man", "age" : "27"}
personY = dict(name = "Yuki", sex = "Woman", age = "27")
personL = {}.fromkeys(("name", "sex", "age"), "Test") # 第三种创建方法只能给所有的key赋相同的值

'''打印整个dict'''
print personM
print personY
print personL

'''打印某个dict中对应key的value'''
print personM["name"]
print personY['age']

'''向dict中新增元素'''
personL['count'] = '886'
personL['goodbye'] = "say"
print personL

'''删除dict中对应的某一项'''
del personL['count']
print personL
personL.pop("goodbye")
print personL

'''popitem()不需要传入key,它会随机删除一个'''
print personL.popitem()

'''字符串的格式化输出'''
print "Hello everyone, my name is %(name)s" % personM

print 'PersonM id: %d' % id(personM)
print 'PersonY id: %d' % id(personY)

'''清空字典'''
personL.clear() # 情况字典只是将字典内的key和value删掉,但是这个字典对象还是存在的!而使用del的话,就是将整个字典对象删掉了
print personM

'''get的用法'''
print personM.get('name')
print personL.get('old') # 如果dict中没有这一数据时,会返回None,而不是直接崩溃,比直接通过personL['old']去取值安全
print personM.get("Cool", 'Good') # 这种方式可以在得不到键“Cool”的值时,返回后面指点的value“Good”

'''setdefault的用法'''
print personY.setdefault("Cup", "B") # 这个方法是先查看dict里面是否有cup这个key,如果没有,就会自动新增一个key,并将“B”这个value赋值到这个key中

''''update用法'''
personM.update(personY) # 这个方法没有返回值,所以不能直接打印
print personM

'''判断dict中是否含有某个指定的key'''
if personM.has_key('Cups'):
    print "PersonM have the key of Cup "
else:
    print "PersonM haven't the key of Cup"

